perm filename TEST.LST[S1,ALS] blob sn#491657 filedate 1979-12-30 generic text, type T, neo UTF8
PASCAL/SAIL 1.1    6-SEP-79    COMPILATION LIST PRODUCED ON 30-DEC-79  AT 13:58:43     PAGE  1

    1   C;

PASCAL/SAIL 1.1    6-SEP-79         COMPILATION LIST PRODUCED ON 30-DEC-79  AT 13:58:43     PAGE   2

    1   PROGRAM TEST;
    2   
    3   CONST   ZERO = 0;  ONE = 1;  MAX = 1000000000; (* 10**9 *)
    4   
    5   VAR     A,A2, B, B2, C, C2, COUNT : INTEGER;
    6           N, X, Y, Z, LAST : INTEGER;
    7           PTAB : ARRAY [1..5000] OF INTEGER;
    8           FTAB : ARRAY [1..50] OF INTEGER;
    9   
   10   PROCEDURE PRIME;
   11       BEGIN
   12       N := 11;  X := 2;  LAST := 4;
   13       PTAB[1] := 2;  PTAB[2] := 3;  PTAB[3] := 5;  PTAB[4] := 7;
   14       WHILE LAST < 5000 DO
   15           BEGIN
   16           WHILE ((N DIV PTAB[X]) >= PTAB[X]) DO
   17               BEGIN
   18               IF N MOD PTAB[X] = 0 THEN
   19                   BEGIN
   20                   N := N + 2;  X := 2;
   21                   END
   22               ELSE
   23                   BEGIN
   24                   X := X + 1;
   25                   END;
   26               END;
   27           LAST := LAST + 1;
   28           PTAB[LAST] := N;
   29   IF LAST > 4990 THEN BEGIN WRITELN(TTY,LAST:6,N:20); BREAK; END;
   30           X := 2;  N := N + 2;
   31           END;
   32       END;
   33   
   34   FUNCTION TESTN (VAR N2, N1 : INTEGER) : BOOLEAN;
   35   VAR  Y : INTEGER;
   36       BEGIN
   37       X := 1;
   38       Y := PTAB[X];
   39       TESTN := TRUE;
   40       IF N2 > 0 THEN
   41           BEGIN
   42           WHILE (N2 >= Y) OR (((N2 MOD Y) * MAX + N1) DIV Y >= Y) DO
   43               BEGIN
   44               IF (((N2 MOD Y) * MAX + N1) MOD Y) <> 0 THEN
   45                   BEGIN
   46                   X := X + 1;  Y := PTAB[X];
   47                   END
   48               ELSE
   49                   BEGIN
   50                   TESTN := FALSE;
   51                   Y := MAX;
   52                   END;
   53               END;
   54           END
   55       ELSE
   56           BEGIN
   57           WHILE N1 DIV Y >= Y DO
   58               BEGIN
   59               IF N1 MOD Y <> 0 THEN 
   60                   BEGIN
   61                   X := X + 1;
   62                   Y := PTAB[X];
   63                   END
   64               ELSE
   65                   BEGIN
   66                   TESTN := FALSE;
   67                   Y := N1;
   68                   END;
   69               END;
   70           END;
   71       END;
   72   
   73   BEGIN
   74   PRIME;
   75   A := 3; A2 := 0;
   76   B := 5; B2 := 0;
   77   COUNT := 5;
   78   WHILE COUNT < 50 DO
   79       BEGIN
   80   IF MAX DIV 2 < B THEN
   81           BEGIN WRITELN(TTY,'  C>MAX '); BREAK; END;
   82       C := A + B;  C2 := A2 + B2;
   83       IF C >= MAX THEN
   84           BEGIN
   85           C2 := C2 + 1;   C := C - MAX;
   86           END;
   87       A := B;  A2 := B2;
   88       B := C;  B2 := C2;
   89       COUNT := COUNT + 1;
   90       Y := 0;
   91       IF TEST(Y,COUNT) THEN
  *****           ↑ ********    ↑
               1.↑:  IDENTIFIER NOT DECLARED  
               2.↑:  TYPE OF OPERAND(S) MUST BE BOOLEAN 
   92       IF TESTN(B2,B) THEN
   93           BEGIN
   94           WRITELN(OUTPUT, COUNT:11,B2:12,B:12);
   95           WRITE(TTY,COUNT:11,B:12); BREAK;
   96           END;
   97       END;
   98   END.

   2 ERROR(S) DETECTED


RUNTIME: 00:00.283      ELAPSED: 00:00:01.1      2303 CHARS